package cn.net.sinodata.system.domain.vo;

import cn.net.sinodata.common.translation.annotation.Translation;
import cn.net.sinodata.common.translation.constant.TransConstant;
import cn.net.sinodata.system.domain.BmTransLogRecord;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import cn.net.sinodata.common.excel.annotation.ExcelDictFormat;
import cn.net.sinodata.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;

/**
 * 交易日志视图对象 bm_trans_log_record
 *
 * @author chenbaijun
 * @date 2025-10-31
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = BmTransLogRecord.class)
public class BmTransLogRecordVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @ExcelProperty(value = "主键")
    private String id;

    /**
     * 交易流水
     */
    @ExcelProperty(value = "交易流水")
    private String transSerial;

    /**
     * 交易渠道（0-外汇交易中心，1-中债，2-上清）
     */
    @ExcelProperty(value = "交易渠道", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=-外汇交易中心，1-中债，2-上清")
    @Translation(type = TransConstant.DICT_TYPE_TO_LABEL, other = "trans_channel_code")
    private String transChannelCode;

    /**
     * 接入渠道（1-网新 2-STP 3-统一支付）
     */
    @ExcelProperty(value = "接入渠道", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "1=-网新,2=-STP,3=-统一支付")
    @Translation(type = TransConstant.DICT_TYPE_TO_LABEL, other = "connect_channel")
    private String connectChannel;

    /**
     * 接入方式（1-接口查询 2-数据抽取）
     */
    @ExcelProperty(value = "接入方式", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "1=-接口查询,2=-数据抽取")
    @Translation(type = TransConstant.DICT_TYPE_TO_LABEL, other = "connect_type")
    private String connectType;

    /**
     * 处理状态（0-待处理，1-处理中，2-处理完成，3-处理异常）
     */
    @ExcelProperty(value = "处理状态", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=-待处理，1-处理中，2-处理完成，3-处理异常")
    @Translation(type = TransConstant.DICT_TYPE_TO_LABEL, other = "process_state")
    private String processState;

    /**
     * 状态描述
     */
    @ExcelProperty(value = "状态描述")
    private String stateComment;

}
